/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.scrumpmt.web.model;

import java.util.ArrayList;
import java.util.Collection;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.scrumpmt.domain.Proyecto;
import org.scrumpmt.domain.Tarea;

/**
 *
 * @author Cristian
 */
public class ColaboradorJSON {

    private long id;
    private String nombre;
    private String password;
    private String mail;
    private Boolean administrador;
    private Collection<ProductoJSON> proyectoCollection = new ArrayList<ProductoJSON>();
    private Collection<TareaJSON> tareaCollection = new ArrayList<TareaJSON>();
    private Collection<ProductoJSON> proyectoCollection1 = new ArrayList<ProductoJSON>();
    protected static final Logger log = Logger.getLogger(ColaboradorJSON.class.getName());

    public ColaboradorJSON(long id, String nombre, String password, String mail, Boolean administrador, Collection<Proyecto> proyectoCollection, Collection<Tarea> tareaCollection, Collection<Proyecto> proyectoCollection1) {
        this.id = id;
        this.nombre = nombre;
        this.password = password;
        this.mail = mail;
        this.administrador = administrador;

        for (Proyecto p : proyectoCollection) {
            this.proyectoCollection.add(convertirProyecto(p));
        }
        log.log(Level.INFO, "proyectoCollection contiene " + this.proyectoCollection);
        for (Proyecto p1 : proyectoCollection1) {
            this.proyectoCollection1.add(convertirProyecto(p1));
        }
        log.log(Level.INFO, "proyectoCollection1 contiene " + this.proyectoCollection1);
        for (Tarea t : tareaCollection) {
            this.tareaCollection.add(convertirTarea(t));
        }
        log.log(Level.INFO, "tareaCollection contiene " + this.tareaCollection);
    }

    public Collection<ProductoJSON> getProyectoCollection() {
        return proyectoCollection;
    }

    public void setProyectoCollection(Collection<ProductoJSON> proyectoCollection) {
        this.proyectoCollection = proyectoCollection;
    }

    public Collection<ProductoJSON> getProyectoCollection1() {
        return proyectoCollection1;
    }

    public void setProyectoCollection1(Collection<ProductoJSON> proyectoCollection1) {
        this.proyectoCollection1 = proyectoCollection1;
    }

    public Collection<TareaJSON> getTareaCollection() {
        return tareaCollection;
    }

    public void setTareaCollection(Collection<TareaJSON> tareaCollection) {
        this.tareaCollection = tareaCollection;
    }

    public Boolean getAdministrador() {
        return administrador;
    }

    public void setAdministrador(Boolean administrador) {
        this.administrador = administrador;
    }

    public String getMail() {
        return mail;
    }

    public void setMail(String mail) {
        this.mail = mail;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    private ProductoJSON convertirProyecto(Proyecto p) {
        ProductoJSON pj = new ProductoJSON(p.getId(), p.getNombre(), p.getDes(), p.getNomcli(), p.
                getFecini(), p.getFecfin(), p.getHorasJornada(), p.getIdScrumMaster().getId(), p.
                getIdScrumMaster().getNombre());
        return pj;
    }

    private TareaJSON convertirTarea(Tarea t) {
        TareaJSON st = new TareaJSON(t.getId(), t.getDes(), t.getEsf(), t.getFecini(), t.getFecfin(), t.
                getIdColaboradorFk().getNombre(), t.getIdEstadoFk().getId(), t.getIdSprintFk().getDes(), t.getIdTiptareaFk().getDes());
        return st;
    }

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }
}
